/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.sgs.mb;

import br.com.sgs.auxiliar.AlunoAux;
import br.com.sgs.auxiliar.EnderecoAux;
import br.com.sgs.bundle.MessageBundleLoader;
import br.com.sgs.entity.Aluno;
import br.com.sgs.entity.Endereco;
import br.com.sgs.fachada.Fachada;
import br.com.sgs.fachada.IFachada;
import java.io.Serializable;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author Eric
 */
@ManagedBean(name="alunoNewMB")
@ViewScoped
public class AlunoNewMB implements Serializable {
   
    @ManagedProperty(value = "#{loginMB}")
    private LoginMB lmb;
    
    //Campos que receberão as informações de Endereço
    private String login;
    private String senha;
    private String cpf;
    private String email;
    private String nome;
    private String rg;
    private String rgm;
    private String telefone;
    private String celular;

    //Campos que receberão as informações de Endereço
    private String numero;
    private String rua;
    private String cidade;
    private String estado;
    private String pais;
    private String cep;
  
  
    /**
     * Creates a new instance of CampusNewMB
     */

    public AlunoNewMB() {
        
    }
    
    @PostConstruct 
    public void init(){
        popularCombos();
    }      
    
    public void popularCombos() {
        try {

        } catch (Exception e) {
            System.err.println("Erro no popularCombos");
        }

    }
    
    public String salvar() {     
        try {
            
            Aluno aluno = new Aluno();
            Endereco endereco = new Endereco();
            
            aluno.setLogin(getLogin());
            aluno.setSenha(getSenha());
            aluno.setNome(getNome());
            aluno.setEmail(getEmail());
            aluno.setRgm(getRgm());
            aluno.setRg(getRg());
            aluno.setCpf(getCpf());
            aluno.setCelular(getCelular());
            aluno.setTelefone(getTelefone());
            
            endereco.setRua(getRua());
            endereco.setNumero(getNumero());
            endereco.setCidade(getCidade());
            endereco.setEstado(getEstado());
            endereco.setPais(getPais());
            endereco.setCep(getCep());
            endereco.setStatus(EnderecoAux.ATIVO);
            
            aluno.setEndereco(endereco);
            aluno.setDtcriacao(new Date());
            aluno.setStatus(AlunoAux.ATIVO);
            aluno.setEndereco(endereco);
            aluno.setInstituicao(lmb.getFuncionario().getInstituicao());
            
            IFachada ifach = new Fachada();
            ifach.inserir(aluno);
            
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, MessageBundleLoader.getMessage("msgSalvoSucesso"), ""));
          
            return "ALUNOLIST";

        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, MessageBundleLoader.getMessage("erroNaoEncontrado"), ""));
            e.printStackTrace();        
            return null;
        } 
    }
    
    public void limparCampos() {
        try {

            //Campos que receberão as informações de Endereço
            setLogin("");
            setSenha("");
            setCpf("");
            setEmail("");
            setNome("");
            setRg("");
            setRgm("");
            setTelefone("");
            setCelular("");
            setNumero("");
            setRua("");
            setCidade("");
            setEstado("");
            setPais("");
            setCep("");

        } catch (Exception e) {
            System.err.println("Erro no limparCampos");
        }
    }   
    
    public String voltar() {
        try {
            return "ALUNOLIST";
        } catch (Exception e) {
            System.err.println("Erro no método voltar");
            return null;
        }
    }

    /**
     * @param lmb the lmb to set
     */
    public void setLmb(LoginMB lmb) {
        this.lmb = lmb;
    }

    /**
     * @return the login
     */
    public String getLogin() {
        return login;
    }

    /**
     * @param login the login to set
     */
    public void setLogin(String login) {
        this.login = login;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    /**
     * @return the cpf
     */
    public String getCpf() {
        return cpf;
    }

    /**
     * @param cpf the cpf to set
     */
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the rg
     */
    public String getRg() {
        return rg;
    }

    /**
     * @param rg the rg to set
     */
    public void setRg(String rg) {
        this.rg = rg;
    }

    /**
     * @return the rgm
     */
    public String getRgm() {
        return rgm;
    }

    /**
     * @param rgm the rgm to set
     */
    public void setRgm(String rgm) {
        this.rgm = rgm;
    }

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    /**
     * @return the celular
     */
    public String getCelular() {
        return celular;
    }

    /**
     * @param celular the celular to set
     */
    public void setCelular(String celular) {
        this.celular = celular;
    }

    /**
     * @return the numero
     */
    public String getNumero() {
        return numero;
    }

    /**
     * @param numero the numero to set
     */
    public void setNumero(String numero) {
        this.numero = numero;
    }

    /**
     * @return the rua
     */
    public String getRua() {
        return rua;
    }

    /**
     * @param rua the rua to set
     */
    public void setRua(String rua) {
        this.rua = rua;
    }

    /**
     * @return the cidade
     */
    public String getCidade() {
        return cidade;
    }

    /**
     * @param cidade the cidade to set
     */
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    /**
     * @return the estado
     */
    public String getEstado() {
        return estado;
    }

    /**
     * @param estado the estado to set
     */
    public void setEstado(String estado) {
        this.estado = estado;
    }

    /**
     * @return the pais
     */
    public String getPais() {
        return pais;
    }

    /**
     * @param pais the pais to set
     */
    public void setPais(String pais) {
        this.pais = pais;
    }

    /**
     * @return the cep
     */
    public String getCep() {
        return cep;
    }

    /**
     * @param cep the cep to set
     */
    public void setCep(String cep) {
        this.cep = cep;
    }

}
